﻿using System;
using System.Collections;
using LibrErian.Model;

namespace LibrErian.Interfaces.Data
{
    public interface IDataManager : IDisposable 
    {
        void CloseSession();
        IList GetAuthors();
        IList GetBooks(int libraryId);
        IList GetBooksByGenre(int libraryId, int genreId);
        IList GetBooksByAuthor(int libraryId, int authorId);
        IList GetGenres();
        IList GetFormats();
        IList GetLibraries();
        Library GetLibraryById(int libraryId);
        void SaveOrUpdate(object objectToSave);
        void Delete(object objectToDelete);
        void Flush();
        IDataManager GetDisconnectedManager();
    }
}
